Maintaining backup copies of data is necessary. The nature of any given application greatly influences the frequency with which backups must be taken. In situations where data is subject to frequent changes, backup copies are made with a frequency determined as a function of the complexity of recovery. Often, in today's real time environments, multiple copies of data are simultaneously maintained to avoid, or at least reduce, down time associated with data recovery after an incident resulting in processing interruptions. Users are interested in testing the effects of data changes without incapacitating or halting routine operations. To that end, various techniques are taught in the prior art, ranging from total duplicate systems to duplicate files to mirrored disks to mirrored logical volumes within a system.
U.S. Pat. No. 5,403,689 (Belsan et al., Apr. 4, 1995), for example, discloses a file server storage subsystem which defines, manages and accesses synchronized sets of data and maintains them external to the host system's data management facilities.
U.S. Pat. No. 5,515,502 (Wood, May 7, 1996) relates to a backup system for multiple archive devices. This is a full-blown backup system in which data that changed after backup started, are copied again.
U.S. Pat. No. 5,519,844 (Stallmo, May 21, 1996) relates to redundant array storage and physical storage units configured as one or more logical storage units.
A logical volume manager (LVM) is included in the Advanced Interactive Executive Operating System (AIX) version 4.2 from the International Business Machines Corp. Logical volumes may be used for a variety of system purposes such as file systems, paging space and raw data.
This LVM uses a hierarchy of structures to manage fixed disk storage. Each individual fixed disk, called a physical volume, has a name. Every fixed disk which is in use belongs to a volume group. Physical volumes in a volume group are divided into physical partitions of the same size. The number of physical partitions on each disk may vary as a function of the total drive capacity.
One or more logical volumes may be defined within in each volume group. Logical volumes comprise data which may be physically located on different disks. While the data in a given logical volume appears to the user to be contiguous, it may be discontiguous on the physical volume(s). Data in a logical volume may span multiple physical volumes. Logical volumes can be resized, relocated or have their contents replicated; thereby affording great flexibility within the LVM.
Each logical volume comprises one or more logical partitions, which correspond to physical partitions on the fixed disk. When mirroring is used for a logical volume, additional physical partitions are allocated for storing additional copies of each logical partition. The logical partitions are consecutively numbered, but the corresponding physical partitions are not necessarily consecutive or contiguous.
When logical volumes have mirrored copies, each mirrored partition has one of two states, available and stale. Data may be read from any available mirrored partition, but must be written to all available mirrored partitions. Only partitions which are available are allowed to be read from or written to. Stale partitions are not normally read from or written to. A particular AIX command must execute to copy data from an available mirror to a stale mirror and subsequently change the state of the stale mirror partition to available.
There are occasions, however, when users want an instant snapshot of data on a mirrored logical volume. The user may want to simply backup the data; or it may be desired to make changes to the data, run an application and evaluate the results. The user may then choose to eliminate the changes and restore the original data. Prior art techniques historically require a user who desires to revert to the original data, to first make a backup copy of the data before restoring it. These actions are time consuming.
AIX allows a user to split a mirror into a new logical volume. The user has the option of running against data on either logical volume. A drawback of this technique becomes apparent when it is desired to rejoin the split off mirror copy to the source copy. The entire logical volume must be resynchronized, regardless of the number or nature of changes made on either logical volume, an operation which may take a relatively long time.
Thus, a need arises to more efficiently manage mirrored logical volumes. It is desirable to allow users to capture snapshot data and to manipulate data in multiple mirrors independently. It is not desirable to require that an entire logical volume be resynchronized. It is still further desirable to reduce the time and system resources required to backup and restore original data as well as to make a mirror copy completely available for use.